'\" te
.\" Copyright (C) 2007, Sun Microsystems, Inc. All Rights Reserved
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH NDD 8 "July 17, 2023"
.SH NAME
ndd \- get and set driver configuration parameters
.SH SYNOPSIS
.nf
\fBndd\fR [\fB-set\fR] \fIdriver\fR \fIparameter\fR [\fIvalue\fR]
.fi

.SH DESCRIPTION
\fBndd\fR gets and sets selected configuration parameters in some kernel
drivers. Currently, \fBndd\fR only supports the drivers that implement the
\fBTCP/IP\fR Internet protocol family. Each driver chooses which parameters to
make visible using \fBndd\fR. Since these parameters are usually tightly
coupled to the implementation, they are likely to change from release to
release. Some parameters may be read-only.
.sp
.LP
If the \fB-set\fR option is omitted, \fBndd\fR queries the named \fIdriver\fR,
retrieves the value associated with the specified \fIparameter\fR, and prints
it. If the \fB-set\fR option is given, \fBndd\fR passes \fIvalue\fR, which must
be specified, down to the named \fIdriver\fR which assigns it to the named
\fIparameter\fR.
.sp
.LP
By convention, drivers that support \fBndd\fR also support a special read-only
\fIparameter\fR named ``\fB?\fR'' which can be used to list the parameters
supported by the driver.
.SH EXAMPLES
\fBExample 1 \fRGetting Parameters Supported By The TCP Driver
.sp
.LP
To see which parameters are supported by the TCP driver, use the following
command:

.sp
.in +2
.nf
example% \fBndd /dev/tcp \e?\fR
.fi
.in -2
.sp

.sp
.LP
The parameter name ``\fB?\fR'' may need to be escaped with a backslash to
prevent its being interpreted as a shell meta character.

.sp
.LP
The following command sets the value of the parameter \fIip_forwarding\fR in
the dual stack IP driver to zero. This disables IPv4 packet forwarding.

.sp
.in +2
.nf
example% \fBndd -set /dev/ip ip_forwarding 0\fR
.fi
.in -2
.sp

.sp
.LP
Similarly, in order to disable IPv6 packet forwarding, the value of parameter
\fIip6_forwarding\fR

.sp
.in +2
.nf
example% \fBndd -set /dev/ip ip6_forwarding 0\fR
.fi
.in -2
.sp

.SH SEE ALSO
.BR ioctl (2),
.BR arp (4P),
.BR ip (4P),
.BR ip6 (4P),
.BR tcp (4P),
.BR udp (4P),
.BR attributes (7),
.BR dladm (8)
.SH NOTES
The parameters supported by each driver may change from release to release.
Like programs that read \fB/dev/kmem\fR, user programs or shell scripts that
execute \fBndd\fR should be prepared for parameter names to change.
.sp
.LP
The \fBioctl()\fR command that \fBndd\fR uses to communicate with drivers is
likely to change in a future release. User programs should avoid making
dependencies on it.
.sp
.LP
The use of \fBndd\fR to administer Layer 2 (Data Link layer) drivers is
strongly discouraged as this capability is to be obsoleted in a future release,
replaced by \fBdladm\fR(8). Please refer to the driver-specific man page in
section 4D of the SunOS man pages.
.sp
.LP
The meanings of many \fBndd\fR parameters make sense only if you understand how
the driver is implemented.
.sp
.LP
If a TCP driver sends a report that is truncated, it could be because that
driver uses \fBndd\fR for transporting  the report. \fBndd\fR imposes a 64K
limit on such reports.
